package com.kobe.game_40;

import java.util.Arrays;

/**
 * 
 * Take the number 192 and multiply it by each of 1, 2, and 3:
 * 
 * 192 × 1 = 192 192 × 2 = 384 192 × 3 = 576
 * 
 * By concatenating each product we get the 1 to 9 pandigital, 192384576. We
 * will call 192384576 the concatenated product of 192 and (1,2,3)
 * 
 * The same can be achieved by starting with 9 and multiplying by 1, 2, 3, 4,
 * and 5, giving the pandigital, 918273645, which is the concatenated product of
 * 9 and (1,2,3,4,5).
 * 
 * What is the largest 1 to 9 pandigital 9-digit number that can be formed as
 * the concatenated product of an integer with (1,2, ... , n) where n > 1?
 * 
 * 
 */
public class Game38 {
    public static boolean isPandigital(StringBuilder number) {
        char[] numberArray = number.toString().toCharArray();
        Arrays.sort(numberArray);
        for (int i = 0; i < numberArray.length; i++) {
            if (Character.getNumericValue(numberArray[i]) != i + 1) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        out: for (int i = 9999;; i--) {
            sb.delete(0, sb.length());
            for (int offset = 1; offset < 10; offset++) {
                sb.append(offset * i);
                if (sb.length() < 9) {
                    continue;
                }
                if (sb.length() == 9) {
                    if (isPandigital(sb)) {
                        System.out.println(sb);
                        System.exit(0);
                    }
                } else {
                    continue out;
                }
            }
        }

    }
}
